
function aux = Bcr4bp_Aux(aux)
%
% 载入双圆四体问题参数
%
% 参考：
% 2022_Boudad
% 2024_Scheuerle
%
% 时间：2024年06月03日
% 作者：张晨
% 单位：CSU
% 邮箱：chenzhang@csu.ac.cn
%%%%%%%%%%%%%%%%%%%%%%%

if nargin == 0

    aux = [];

end

% ------------------------- 基本常量 -------------------------
% 万有引力常数
G = 6.67 * 1e-20; % km^3 / (kg * s^2)

% E质量
m_E = 5.9722 * 1e24; % kg
mu_E = G * m_E;

% 月球质量
m_M = 7.342 * 1e22; % kg
mu_M = G * m_M;

% 太阳质量
m_S = 1.989 * 1e30; % kg
mu_S = G * m_S;

% 地月质量和
m_EM = m_E + m_M; % kg

% S和SB1质量和
m_SB1 = m_E + m_M + m_S; % kg

% LEO地心距
rMagLEO = 6378 + 200;
% rMagLEO = 6378 + 20000;

% LLO月心距
rMagLLO = 1738 + 100;

dim.G = G;
dim.m_E = m_E;
dim.mu_E = mu_E;
dim.m_M = m_M;
dim.mu_M = mu_M;
dim.m_S = m_S;
dim.mu_S = mu_S;
dim.m_EM = m_EM;
dim.m_SB1 = m_SB1;
dim.rMagLEO = rMagLEO;
dim.rMagLLO = rMagLLO;

%% ------------------------- EMrot -------------------------
% E-M距离（有量纲）
l_EM = 384747.992; % km

% E-M时间单位（有量纲）
t_EM = sqrt(l_EM^3 / (G * m_EM));

% E-M速度单位（有量纲）
v_EM = l_EM / t_EM;

dim.EMRot_l = l_EM;
dim.EMRot_t = t_EM;
dim.EMRot_v = v_EM;

%% ------------------------- SB1rot -------------------------
% S-SB1距离
l_SB1 = 149597894; % km

% S-SB1时间单位
t_SB1 = sqrt(l_SB1^3 / (G * m_SB1));

% S-B1速度单位
v_SB1 = l_SB1 / t_SB1;

dim.SB1Rot_l = l_SB1;
dim.SB1Rot_t = t_SB1;
dim.SB1Rot_v = v_SB1;

%% ------------------------- EMrot归一化 -------------------------
% 地月系统引力常量（归一化）
EMRot.mu = m_M / (m_E + m_M);

% 太阳质量（归一化）
EMRot.mus = m_S / m_EM;

% 地月距离（归一化）
EMRot.aem = 1;

% B1到太阳距离（归一化）
EMRot.as = l_SB1 / l_EM; % R_B1,S

% 太阳绕B1角速度（归一化）
% Earth-Moon Rot 下太阳绕B1角速度 w_s,emrot = w_sb1,ini - w_em,ini
EMRot.ws = sqrt((1 + EMRot.mus) / EMRot.as^3) - 1;

% ---------------------------------------------------
EMRot.e_mass = 1 - EMRot.mu;
EMRot.m_mass = EMRot.mu;
EMRot.s_mass = EMRot.mus;

EMRot.b1_mass = 1;
EMRot.b2_mass = EMRot.mus + 1;

EMRot.rMag_b1_e = EMRot.mu;
EMRot.rMag_b1_m = 1 - EMRot.mu;
EMRot.rMag_b1_s = EMRot.as;
EMRot.rMag_b2_b1 = EMRot.as * EMRot.mus / (EMRot.mus + 1);
EMRot.rMag_b2_s = EMRot.as * 1 / (EMRot.mus + 1);

%% ------------------------- SB1Rot归一化 -------------------------
% SB1系统引力常量（归一化）
SB1Rot.mu = (m_E + m_M) / (m_E + m_M + m_S);

% 太阳质量归一化
SB1Rot.mus = m_S / (m_E + m_M + m_S);

% 地月距离（归一化）
SB1Rot.aem = l_EM / l_SB1;

% 距离归一化
SB1Rot.as = 1;

% 地月绕B2角速度（归一化）
% Sun-B1 Rot 下月球绕B2角速度 w_m,sb1rot = w_em,ini - w_sb1,ini
SB1Rot.wm = 1 / sqrt((EMRot.mus + 1) / EMRot.as^3) - 1;

% ---------------------------------------------------
SB1Rot.e_mass = (1 - EMRot.mu) / (EMRot.mus + 1);
SB1Rot.m_mass = EMRot.mu / (EMRot.mus + 1);
SB1Rot.s_mass = EMRot.mus / (EMRot.mus + 1);

SB1Rot.b1_mass = 1 / (EMRot.mus + 1);
SB1Rot.b2_mass = 1;

SB1Rot.rMag_b2_s = 1 / (EMRot.mus + 1);
SB1Rot.rMag_b2_b1 = EMRot.mus / (EMRot.mus + 1);
SB1Rot.rMag_b1_e = 1 / EMRot.as * EMRot.mu;
SB1Rot.rMag_b1_m = 1 / EMRot.as * (1 - EMRot.mu);

% ---------------------------- 保存 ----------------------------
aux.dim = dim;
aux.EMRot = EMRot;
aux.SB1Rot = SB1Rot;

% ----------------------------- 数值积分 -----------------------------
% aux.tol = 1e-8;
aux.tol = 1e-10;
% aux.tol = 1e-12;

% ----------------------------- 多步打靶 -----------------------------
aux.nNode = 20;

% ----------------------------- 伪弧长延拓 -----------------------------

aux.pseudoArc = [];

% 步长
% aux.pseudoArc.deltas = 5e-1;
% aux.pseudoArc.deltas = 2e-1;
aux.pseudoArc.deltas = 1e-1;
% aux.pseudoArc.deltas = 5e-2;
% aux.pseudoArc.deltas = 1e-2;
% aux.pseudoArc.deltas = 5e-3;

% 延拓总数
aux.pseudoArc.maxNum = 100;

end
